package com.syaccp.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.pagehelper.PageInfo;
import com.syaccp.model.*;
import com.baomidou.mybatisplus.extension.service.IService;
import com.syaccp.page.pageUtils;
import com.syaccp.request.TOrderMaterialRequest;
import com.syaccp.response.OrderDetailStatus;
import org.apache.ibatis.annotations.Param;
import org.springframework.beans.factory.ListableBeanFactory;

import java.util.List;


/**
 * @author DX
 * @description 针对表【t_order_detail】的数据库操作Service
 * @createDate 2023-07-25 09:12:24
 */
public interface TOrderDetailService extends IService<TOrderDetail> {

    /**
     * 查询总条数
     * @param orderMaterialRequest
     * @return
     */
    int queryInfoByConditionsNumber(@Param("orderRes") TOrderMaterialRequest orderMaterialRequest);

    /**
     * 根据多条件查询任务
     *
     * @return
     */
    List<TOrderDetail> queryInfoByConditions(@Param("orderRes") TOrderMaterialRequest orderMaterialRequest, @Param("page") pageUtils page);

    /**
     * 查询审核级别
     *
     * @return
     */
    List<TOrderDetail> queryAuditions();

    /**
     * 查询模型师
     * @return
     */
    List<TOrderDetail> queryModelNames();

    /**
     * 查询所属公司
     * @return
     */
    List<TOrderDetail> queryCompanyNames();

    /**
     * 批量删除
     * @param ids
     * @return
     */
    Integer delInfoByIds(List<Integer> ids);

    /**
     * 根据id设置为精选
     * @return
     */
    Integer updateSelection(List<Integer> ids);


    PageInfo<TOrderDetail> QueryAllDetail(TOrderDetail orderDetail, int index);

    OrderDetailStatus QueryDetailsStatus();

    List<SysDept> QueryCompanyMsg();

    TOrder QueryOrderNameById(Integer id);

    List<Dict> QueryAttachmentType(Dict dict);

    List<TOrderCategory> QuerySceneTypeById(Integer id);
    Integer IsDelete(Integer id);

    Integer UpdateTaskStatesByStaffId(Integer id);

    List<Dict> QueryStyleType();

    List<Dict>  QueryModelLevel();


    Integer addOrderDetail(TOrderDetail orderDetail);

    TOrderDetail  selectOneById(Integer id);

    Integer updateOrderDetail(TOrderDetail orderDetail ,Integer id);





    List<TOrderDetail> queryOrderDetailByOrderId(Integer orderId);

    Integer insertOrderDetail(TOrderDetail orderDetail);

    TOrderDetail queryOrderDetailById(Integer taskId);

    Integer updateOrderDetail(TOrderDetail orderDetail);

    Integer deleteOrderDetail(Integer taskId);

    Integer payMoney(TOrderDetail orderDetail);
}
